// 导入依赖的模块
yepjs.require("jquery");
yepjs.require("YBA.Common");
yepjs.require("YBA.Plugin.plugins");
yepjs.require("YBA.Plugin.wdatePicker");
yepjs.require("YBA.Data.Admin");

// 终端管理 - 终端列表管理
yepjs.define("customerList", {

    NS: "YBA.Logic.Admin",

    field: function() {

        var Biz = {
            // 初始化事件
            init: function() {

                Biz.fn.getList(function (json) {

                    // 设置初始列表项目的数量，创建分页控件需要使用该数量
                    Biz.vars.totalNum = json.page.totalRecord;

                    for (var i in Biz.event) {
                        Biz.event[i]();
                    }
                });
            },
            //  公共变量
            vars: {
                // 模板列表
                tpl: (function(){
                    var tpl = {};
                    $("script[type='text/ysmart']").each(function(){
                        var t = $(this);
                        tpl[t.attr("data-name")] = t.html();
                    });
                    return tpl;
                })(),
                // 报表搜索字段
                searchVar: {
                	name:"",       		//客户公司名称   可选
                	startTime: "",            // 起始时间  long  可选
                    endTime: "",    // 结束时间  long  可选
                	startPos: 1,          // 当前页码   String  必选, 最小值为1
                    pageSize: 18          // 数据条数   String  必选
                },
                // 列表项目的总数量
                totalNum: 0,
                // 分页控件引用
                pageCtrl: null
            },
            // 页面元素
            el: {
            	body: $("body"),
                jpage: $("#j-page"),
                jlist: $("#j-list"),
                jtotalNum: $("#j-totalNum"),
                jcustomerName:$("#j-customerName"),
                jstartTime: $("#j-startTime"),
                jendTime: $("#j-endTime"),
                jaddStrategy:$("#j-addStrategy"),
                jadminStrategy:$("#j-adminStrategy")
            },
            // 功能函数集合
            fn: {
                // 读取客户列表
                getList: function (callback) {
                    YBA.Data.Admin.getCustomerList(Biz.vars.searchVar, function (json) {
                        if(json.code == 200) {
                            Biz.el.jlist.html(YBA.Common.ysmart(Biz.vars.tpl.list, json.objList));
                            Biz.el.jtotalNum.html(json.page.totalRecord);

                            Biz.vars.pageCtrl && Biz.vars.pageCtrl.setTotalNum(json.page.totalRecord);

                            callback && callback(json);
                        }else{
                            YBA.Plugin.msgtip({type: "i", msg: json.desc})
                        }
                    });
                },
                //获取云存储列表
                getCloudList:function(dom){
                    YBA.Data.Admin.getStorageCloudList({"startPos": 1,"pageSize": 0 }, function(json){
                        if(json.code == 200) {
                            var str = "";
                            for(var i = 0; i < json.list.length ; i++){
                                str+="<option value='"+json.list[i].id+"'>"+json.list[i].name+"</option>";
                            }
                            dom.html(str);
                        }
                    });
                },
                // 新增存储策略弹窗
                strategyForm: function(id){

                    var popform = new YBA.Plugin.popform({
                        title: "新增存储策略",
                        className: "ui-dialog-strategy",
                        content: Biz.vars.tpl.addStrategyTpl,
                        width: 400,
                        destroy: true,
                        onHide: function () {
                            // 隐藏弹窗时要执行的回调函数
                        },
                        onShow: function () {
                            // 显示弹窗时要执行的回调函数
                        	$("#j-customerId").val(id);
                            Biz.fn.getCloudList($("#j-storageCloudId"));
                        },
                        btns: [{
                            value: "确定",
                            className: "blue btn g-mr10",
                            fn: function () {
                                var form = popform.self.find("form");
                                var data = form.serialize();
                                YBA.Data.Admin.addStrategy(data, function(json){
                                    if(json.code == 200) {
                                        YBA.Plugin.msgtip({type: "o", msg: json.desc});
                                        popform.hide();
                                    }else{
                                        YBA.Plugin.msgtip({type: "i", msg: json.desc});
                                    }
                                });
                            }
                        }, {
                            value: "取消",
                            className: "red btn g-ml10",
                            fn: function () {
                                popform.hide();
                            }
                        }]
                    }).show();

                    return false;
                },
                // 获取客户详情弹窗
                customerInfoForm: function(json){

                    var popform = new YBA.Plugin.popform({
                        title: json.companyName + "详情",
                        className: "ui-dialog-customerInfo",
                        content: YBA.Common.ysmart(Biz.vars.tpl.customerInfoTpl,json),
                        width: 700,
                        destroy: true,
                        onHide: function () {
                            // 隐藏弹窗时要执行的回调函数
                        },
                        onShow: function () {
                            // 显示弹窗时要执行的回调函数
                        },
                        btns: [{
                            value: "取消",
                            className: "red btn g-ml10",
                            fn: function () {
                                popform.hide();
                            }
                        }]
                    }).show();

                    return false;
                }
            },
            // 初始化时执行的所有事件
            event: {
            	// 搜索
                search: function () {
                    // 点击“查询”时，设置搜索条件
                    Biz.el.body.delegate(".j-search", "click", function () {
                        Biz.vars.searchVar.name = Biz.el.jcustomerName.val();
                        Biz.vars.searchVar.startTime = Biz.el.jstartTime.val();
                        Biz.vars.searchVar.endTime = Biz.el.jendTime.val();
                        Biz.vars.searchVar.startPos = 1;

                        Biz.vars.pageCtrl.setPageIndex(1);

                        Biz.fn.getList();
                    });

                    // 点击“重置”时，重置搜索条件
                    Biz.el.body.delegate(".j-reset", "click", function () {

                        Biz.el.jcustomerName.val("");
                        Biz.el.jstartTime.val("");
                        Biz.el.jendTime.val("");

                        Biz.vars.searchVar.name = "";
                        Biz.vars.searchVar.startTime = "";
                        Biz.vars.searchVar.endTime = "";
                        Biz.vars.searchVar.startPos = 1;

                        Biz.vars.pageCtrl.setPageIndex(1);

                        Biz.fn.getList();
                    });
                },
                // 分页
                pageNav: function () {
                    // 创建分页控件
                    Biz.vars.pageCtrl = new YBA.Plugin.pageNav({
                        // 放置分页控件的容器
                        pageCon: Biz.el.jpage,
                        // 每页数量
                        pageSize: Biz.vars.searchVar.pageSize,
                        // 总数量
                        totalNum: Biz.vars.totalNum,
                        // 回调函数
                        callback: function (pageIndex) {
                            // 设置页次
                            Biz.vars.searchVar.startPos = pageIndex;
                            // 执行搜索
                            Biz.fn.getList();
                        }
                    });
                },
                // 使用日历控件
                datePicker: function () {
                    Biz.el.jstartTime.bind("focus", function () {
                        WdatePicker({maxDate:'#F{$dp.$D(\'j-endTime\');}'});
                    });
                    Biz.el.jendTime.bind("focus", function () {
                        WdatePicker({minDate:'#F{$dp.$D(\'j-startTime\');}'});
                    });
                },
                //新增客户存储策略
                addStrategy:function(){
                	Biz.el.jlist.delegate(".j-addStrategy","click",function(){
                		var t = $(this), tr = t.closest("tr"), id = tr.attr("data-id");
                        Biz.fn.strategyForm(id);
                	})
                },
                //管理客户存储策略
                strategyAdmin:function(){
                    Biz.el.jlist.delegate(".j-adminStrategy","click",function(){
                        var t = $(this), tr = t.closest("tr"), id = tr.attr("data-id");
                        location.href = "strategy.jsp?id="+id;
                    })
                },
                //查看客户详情
                customerInfo:function(){
                	Biz.el.jlist.delegate(".j-showInfo","click",function(){
                		var t = $(this), tr = t.closest("tr"), id = tr.attr("data-id");
                		YBA.Data.Admin.getCustomerInfo({customerId:id},function(json){
                			if(json.code == "200"){
                				Biz.fn.customerInfoForm(json.obj);
                			}else{
                				YBA.Plugin.msgtip({type: "i", msg: json.desc});
                			}
                		})
                		
                	})
                }
                	
            }
        };

        Biz.init();

        return Biz;
    }
});
